---
tags:
  - CN
  - computer-network
---

# 计算机网络分层结构

- 计算机网络的体系结构(Architecture) -> 对该网络及其所应完成功能的精确定义
    -> 相比于实现(Implementation, 具体的软硬件)来说是抽象的
- 分层的基本原则 -> 
    1. 每层实现相互独立的功能
    2. 层间接口清晰简洁, 减少相互依赖
    3. 各层功能的定义独立于具体实现方法, 可以采用最合适的技术来实现
    4. 保持下层对上层的独立性, 上层单向使用下层提供的服务
    5. 分层结构需要有利于标准化工作
- 实体 -> 第n层的活动元素通常称为第n层实体
- 不同机器上的同一层是对等层, 同一层的实体互为对等实体
- 相邻两层间, n层(为低层)是服务提供者, n+1层(为高层)是服务用户, 提供的服务实为自身及以下所有层提供的服务的总和
- 协议数据单元, 服务数据单元和协议控制信息
    - 协议数据单元(Protocol Data Unit,PDU) -> 对等层之间传送的数据单位
                                    -> n-PDU = n-SDU + n-PCI
    - 服务数据单元(Service Data Unit,SDU) -> 相邻层之间交换的数据单位
    - 协议控制信息(Protocol Control Information,PCI) -> 用于控制协议操作的信息(首部信息+尾部信息)
    -> 第n层的PDU记为n-PDU...
- 网络分层结构中, 从上层到下层依次为 -> 
    - 5 应用层 -> PDU为报文
    - 4 传输层 -> PDU为TCP报文段或UDP数据报
    - 3 网络层 -> PDU为IP分组
    - 2 数据链路层 -> PDU为帧
    - 1 物理层 -> PDU为比特流

# 计算机网络协议,服务,接口的概念

1. 协议
    为在网络中进行数据交换而建立的这些规则,标准或约定称为网络协议
    - 控制**对等**实体之间通信的规则集合(水平)
    - 下层协议对上层**透明**
    - 由语法,语义,同步(或时序)三部分组成
2. 接口
    同一节点内相邻两层实体交换信息的逻辑接口称为服务访问点(SAP)
    - 不允许跨层定义接口
    - 表现为向上暴露
    - 服务通过SAP提供给上层, n层的SAP为n+1层访问n层的入口
3. 服务
    服务是下层为紧邻的上层提供的功能调用(垂直)
    可以细分为
    1. 面向连接服务和无连接服务
    2. 可靠服务二缓不可靠服务
    3. 有应答服务和无应答服务

# OSI参考模型和TCP/IP模型

## OSI参考模型
ISO提出的开放系统互连参考模型(OSI/RM)
    1. 物理层 -> 在物理介质上为数据端设备**透明**地传输原始比特流
        -> 规定了接口的机械特性和电气特性以及通信链路上的编码意义和电气特征
        - 传输使用的物理介质(双绞线,光缆,无线信道等)不属与物理层协议范畴
    2. 数据链路层 -> **节点到节点**通信(基于MAC地址)
        -> 将物理层提供的可能出错的物理连接**改造成逻辑上无差错的数据链路**
        -> 将分组封装为帧, 实现节点间的**差错控制**和**流量控制**(会写在协议里)
        如果在广播式网络的数据链路层中, 还需解决**共享信道的访问控制问题**    
    3. 网络层 -> **主机到主机**通信(基于IP地址)
        -> 主要任务为**将分组从源主机传送到目的主机**,为主机提供**通信服务**
        -> 路由选择, 拥塞控制, 差错控制, 流量控制, 网际互联等
        -> 网络层既提供有连接的**虚电路**服务, 也提供无连接的**数据报**服务
    4. 传输层 -> 端到端通信(基于端口号)
        -> 连接管理, 可靠传输, 流量控制, 差错控制等
    5. 会话层 -> 同步机制, 管理不同主机上进程的会话
    6. 表示层 -> 解决异构系统间信息表示不一致的问题
    7. 应用层 -> 用户与网络的接口
## TCP/IP模型
TCP/IP模型 -> 网络接口层,网际层,传输层和应用层
- 事实上的国际标准
- TCP/IP模型与OSI参考模型的区别
1. 未规定**网络接口层**的具体细节, 仅要求主机能通过某种底层协议接入网络以传送**IP分组** -> 可以使用以太网,无限局域网,电话网或广域网等
2. **网际层** -> 网际层为每个分组选择路由, 但是不保证分组的有序到达(去除了差错控制的功能), 将分组的有序性和可靠性交给传输层负责
3. **传输层** -> 旨在实现发送端与接收端主机上对等进程之间的逻辑通信
            -> 两种协议 -> 
            传输控制协议(TCP, 面向连接, 提供可靠交付, 数据传输单位为报文段)
            用户数据报协议(UDP, 无连接, 不保证可靠, 数据传输单位为用户数据报) 
4. 应用层集成了OSI中上三层的功能, 包含所有高层协议 -> FTP,DNS,HTTP...
>**IP** 的全称是 **Internet Protocol**，中文译为 **网际协议** 或 **互联网协议**
### 对比
1. OSI最大的贡献为精确定义了服务,协议,接口三个概念, TCP/IP没有做明确区分
2. TCP/IP进行的模型的精简
3. OSI参考模型先有模型, 后制定具体协议, 通用性良好, 适合描述具体网络; TCP/IP模型正好相反, 即现有协议栈, 后归纳出模型, 因此不适合任何其他的非TCP/IP模型
    - -> TCP/IP 模型则是先有实际运行的协议族（TCP、IP、UDP、HTTP 等）, 后来学者为了教学和描述方便, 才把这些协议归纳成 4 层或 5 层模型.
        - 它是从已有协议中**倒推**出来的模型.
        - 因此它天然绑定 TCP/IP 协议栈, 只适合解释 TCP/IP 网络.
4. OSI在网络层就支持无连接和面向连接的通信模式; TCP/IP在传输层采保障可靠性, 在网际层仅提供无连接服务

# 总结
- 从此节开始, 只做真题(包括大题)
1. 网络体系结构所描述的内容 -> 层次, 每层的协议与功能
2. TCP/IP模型中, 网际层不实现流量控制, 也不交给别层控制 -> 在 TCP/IP 模型中, **端到端的流量控制由传输层（主要是 TCP）负责**. TCP 通过滑动窗口机制控制发送速率, 防止发送方把接收方"冲垮"; 但是在OSI模型中, 两个结点间流量控制由数据链路层控制